﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PDS_ANDU.DTO;
using PDS_ANDU.Controles;
using PDS_ANDU.Entidades;

namespace PDS_ANDU.GUI
{
    public partial class Suscriptor : Form
    {

        private string cuenta;// atributo que guarda la cuenta del suscriptor q hace el login

        public Suscriptor(string cuentaSuscriptor)
        {
            InitializeComponent();
            cuenta = cuentaSuscriptor;
        }

        private void Suscriptor_Load(object sender, EventArgs e)
        {
            this.Location = new Point(this.MdiParent.ClientSize.Width / 2 - this.Width / 2, this.MdiParent.ClientSize.Height / 2 - this.Height / 2);
            this.verListadoNotificaciones(cuenta);
        }

        /// <summary>
        /// Manejador de evento "Click en menuItem Perfiles -> Agregar"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void agregarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // crea la instancia de ventana
            SuscriptorAgregarPerfil ventana = new SuscriptorAgregarPerfil(cuenta);
            // asigna el MdiParent
            ventana.MdiParent = this.MdiParent;
            // abra la ventana nueva
            ventana.Show();
            // cierra la ventana actual
            this.Close();
        } // fin del manejador de evento

        /// <summary>
        /// Manejador de evento "Click en menuItem Perfiles -> Ver listado"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void verToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // crea la instancia de ventana
            SuscriptorPerfiles ventana = new SuscriptorPerfiles(cuenta);
            // asigna el MdiParent
            ventana.MdiParent = this.MdiParent;
            // abra la ventana nueva
            ventana.Show();
            // cierra la ventana actual
            this.Close();
        } // fin del manejador de evento

        /// <summary>
        /// Este metodo obtiene las notificaciones para la cuenta de suscriptor pasada como parametro
        /// </summary>
        /// <param name="susc"></param>
        /// <returns></returns>
        private void verListadoNotificaciones(string susc)
        {
            ControlNotificacion control = new ControlNotificacion();
            List<DTONotificacion> listaNotificaciones = control.obtenerNotificaciones(susc);
            for (int i = 0; listaNotificaciones.Count > i; i++)
            {
                ListViewItem lista = new ListViewItem(listaNotificaciones[i].Numero.ToString());
                lista.SubItems.Add(listaNotificaciones[i].PerfilAsociado.Nombre);
                lista.SubItems.Add(listaNotificaciones[i].Titulo);
                lista.SubItems.Add(listaNotificaciones[i].Resumen);
                lista.SubItems.Add(listaNotificaciones[i].Enlace);
                listView1.Items.Add(lista);
            }
        }

        private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            string numero = listView1.SelectedItems[0].SubItems[0].Text;
            string perfil = listView1.SelectedItems[0].SubItems[1].Text;
            string titulo = listView1.SelectedItems[0].SubItems[2].Text;
            string resumen = listView1.SelectedItems[0].SubItems[3].Text;
            string enlace = listView1.SelectedItems[0].SubItems[4].Text;
            System.Diagnostics.Process.Start("" + enlace);

            ControlAnuncio control = new ControlAnuncio();
            
            Anuncio anuncio;
            anuncio = control.getAnuncio(perfil);

            if(!(anuncio == null))
                anuncio.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Login ventanaLogin = new Login();
            ventanaLogin.MdiParent = this.MdiParent;
            ventanaLogin.Show();
            this.Close();
        }

        private void Suscriptor_FormClosed(object sender, FormClosedEventArgs e)
        {

        }
    }
}
